#include"BlockQueue.hpp"

//消费者
void* consumer(void* args)
{
    BlockQueue<int>* bqueue=(BlockQueue<int>*)args;
    while(true)
    {
        int a;
        bqueue->pop(&a);
        std::cout<<"消费一个商品:"<<a<<std::endl;
        sleep(3);
    }
    return nullptr;
}

//生产者
void* producer(void* args)
{
    BlockQueue<int>* bqueue=(BlockQueue<int>*)args;
    int cnt=1;
    while(true)
    {
        bqueue->push(cnt);
        std::cout<<"生产一个商品:"<<cnt++<<std::endl;
        sleep(1);
    }
    return nullptr;
}



int main()
{
    BlockQueue<int>*bqueue=new BlockQueue<int>();
    pthread_t c;
    pthread_t p;
    pthread_create(&c,nullptr,consumer,(void*)bqueue);
    pthread_create(&p,nullptr,producer,(void*)bqueue);

    pthread_join(c,nullptr);
    pthread_join(p,nullptr);

    delete bqueue;
    return 0;

}